﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;

namespace UI.Control
{
    public abstract class AbstractCoverLayout
    {

        #region Variables
        
        protected CoverFlow3D _coverFlow;

        #endregion

        #region Properties

        [Browsable(false)]
        public CoverFlow3D CoverFlow
        {
            get
            {
                return _coverFlow;
            }
            set
            {
                _coverFlow = value;
            }
        }

        #endregion

        #region Position calculation

        abstract public double CalculateRotationAngle(int visualIndex, Cover cover);

        abstract public double CalculateTranslationX(int visualIndex, Cover cover);

        virtual public double CalculateTranslationY(int visualIndex, Cover cover)
        {
            return 0;
        }

        abstract public double CalculateTranslationZ(int visualIndex, Cover cover);

        #endregion

    }
}
